/*
 * Created: 2022-08-29 20:59:15
 * Author : 涛涛涛
 */

import { myEnv } from '@/myEnv';
import { Immit } from '@/utils';
import { Artwork_Web } from './Artwork';
import { Author_Web } from './Author';
export type Status = 'waitForSale' | 'dropping' | 'soldOut';
export abstract class Product_Abs extends Immit {
    /** 商品主键 */
    id: string = '';
    /** 艺术品ID 例:1 */
    artworkId: string = '';
    /** 作家ID */
    artistId: string = '';
    /** 作品开售时间 例:2022-08-29T06:00:00.000Z */
    dropStartDate: DeteStr = '';
    /** 作品停止销售的时间 例:2022-08-29T06:30:00.000Z */
    dropEndDate: DeteStr = '';
    /** 作品总数量 例:10 */
    totalQuantity: string = '';
    /** 作品剩余数量 例:0 */
    leftQuantity: string = '';
    /** 价格 */
    price: string;
    /*'' 作品状态  waitForSale:待发行, dropping:进行中, soldOut:卖光 */
    status: Status = 'dropping';
}

export class Product_Res extends Product_Abs {}

export class Product_Web extends Product_Abs {
    /** 艺术品信息 */
    artwork: Artwork_Web = new Artwork_Web();
    /** 作家信息 */
    author: Author_Web = new Author_Web();
    immit_response?(data: Partial<Product_Res>) {
        this.immit(data, ['artwork', 'author']);
        this.dropStartDate = new Date(data.dropStartDate).toLocaleString().replace(/\//g, '-');
        this.dropEndDate = new Date(data.dropEndDate).toLocaleString().replace(/\//g, '-');
        return this;
    }
    immit_author?(data: Author_Web) {
        this.author = new Author_Web().immit(data);
        return this;
    }
    immit_artwork?(data: Artwork_Web) {
        this.artwork = new Artwork_Web().immit(data);
        return this;
    }
}
